package com.harveyguo.nihonngo.service;

import com.harveyguo.nihonngo.model.dto.BoxingCornerDto;

import java.util.List;

/**
 * 拳击角Service接口
 */
public interface BoxingCornerService {

    /**
     * 创建拳击角
     */
    BoxingCornerDto createCorner(BoxingCornerDto cornerDto);

    /**
     * 根据ID查找拳击角
     */
    BoxingCornerDto findById(String id);

    /**
     * 查找所有拳击角
     */
    List<BoxingCornerDto> findAll();

    /**
     * 根据拳馆ID查找拳击角
     */
    List<BoxingCornerDto> findByGymId(String gymId);

    /**
     * 根据创建者ID查找拳击角
     */
    List<BoxingCornerDto> findByCreatorId(String creatorId);

    /**
     * 根据活跃状态查找拳击角
     */
    List<BoxingCornerDto> findByActive(Boolean isActive);

    /**
     * 根据技能水平查找拳击角
     */
    List<BoxingCornerDto> findBySkillLevel(String skillLevel);

    /**
     * 查找附近的活跃拳击角
     */
    List<BoxingCornerDto> findNearbyActiveCorners(Double latitude, Double longitude, Double radius);

    /**
     * 更新拳击角信息
     */
    BoxingCornerDto updateCorner(String id, BoxingCornerDto cornerDto);

    /**
     * 删除拳击角
     */
    void deleteCorner(String id);

    /**
     * 加入拳击角
     */
    BoxingCornerDto joinCorner(String cornerId, String userId);

    /**
     * 退出拳击角
     */
    BoxingCornerDto leaveCorner(String cornerId, String userId);
}